package com.dbz.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dbz.entity.Product;
import com.dbz.entity.ProductJin;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface ProductService extends IService<Product> {

    public IPage<Product> selectPage(IPage<Product> page, @Param(Constants.WRAPPER) Wrapper<Product> queryMapper);

    /**
     * 多条件分页
     * @param
     * @param page
     * @param rows
     * @return
     */
    public List<Product> selectPages(String proname, Integer page, Integer rows);

    /**
     * 根据id删除用户
     * @param proid
     * @return
     */
    public int delproductByid(String proid);

    /**
     * 根据id修改用户
     * @param
     * @return
     */
    public int updateProductById(Product product);

    /**
     * 添加产品
     * @param product
     * @return
     */
   public int insertProduct(Product product);


    /**
     * 查询所有
     * @return
     */
    public List<Product> selectProductGetAll();


    /**
     * 修改数量
     * @param pronumber
     * @return
     */
    public int updateProductNumber( String proname,
                                   Integer pronumber,
                                   String proguige,
                                   String wareid,
                                    String prosupplier
    );


    /**
     * 根据id修改图片
     * @param proid
     * @param proimg
     * @return
     */
    public int updateProductImgById(String proid,String proimg);


    /**
     * 查询所有
     * @return
     */
    public Set<Product> selectProductName();

    /**
     * 根据产品类别ID查询产品
     * @param protype
     * @return
     */
    public List<Product> selectProByProTypeId(Integer protype);
    /**
     * 根据id查询商品
     * @param proid
     * @return
     */
    public List<Product> selectById(String proid);

    /**
     * 修改产品数量
     * @return
     */
    public int updateNumber(String proid,Integer pronumber);


    /**
     * 入库
     * @return
     */
    public int insertProduct(ProductJin productJin);

}
